// pages/search/search.js
import request from '../../utils/request'

let isSend = false //节流

Page({

  /**
   * 页面的初始数据
   */
  data: {
    placeholderContext: '',//默认的搜索词
    hotList: [],//热词列表
    searchContent: '',//文本框的数据
    searchList: [],//搜索查询的列表数据
    historyList: [],//历史记录
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 获取默认搜索关键提示词
    this.getInitData()

    //获取历史记录的数据
    this.getHistoryList()
  },
  // 获取默认搜索关键提示词
  async getInitData() {
    //默认搜索词
    const placeholderData = await request('/search/default')
    // console.log(placeholderData)

    //热词列表
    const hotListData = await request('/search/hot/detail')
    // console.log(hotListData)

    // 更新数据
    this.setData({
      placeholderContext: placeholderData.data.showKeyword,
      hotList: hotListData.data
    })
  },

  // 文本框数据内容
  handlerSearchContent(event) {
    // 获取文本框的数据
    const searchContent = event.detail.value.trim()

    // 更新数据
    this.setData({
      searchContent
    })

    // 判断标识是否为true
    if (isSend) {
      return
    }

    isSend = true

    // 调用搜索内容的方法
    this.getSearchList()

    setTimeout(() => {
      isSend = false
    }, 200)
  },

  // 获取搜索的内容数据
  async getSearchList() {
    const { searchContent, historyList } = this.data

    // 判断有没有数据
    if (!searchContent) {
      this.setData({
        searchList: []
      })
      return
    }

    // 调用接口
    const searchListData = await request('/search', { keywords: searchContent, limit: 10 })
    // console.log(searchListData)
    this.setData({
      searchList: searchListData.result.songs
    })

    // 判断输入的内容在历史记录中是否存在
    if (historyList.indexOf(searchContent) !== -1) {
      // 如果存在就删除
      historyList.splice(historyList.indexOf(searchContent), 1)
    }

    // 数据插入到历史数组中的第一个位置
    historyList.unshift(searchContent)

    // 更新数据
    this.setData({
      historyList
    })

    // 把历史记录存储起来
    wx.setStorageSync('historyList', historyList);
  },

  // 读取缓存中历史记录的数据
  getHistoryList() {
    let historyList = wx.getStorageSync('historyList')
    if (historyList) {
      // 历史记录存在
      this.setData({
        historyList
      })
    }
  },

  // 删除历史记录
  deleteHistoryList() {
    wx.showModal({
      title: '删除提示',
      content: '确定要删除全部历史记录吗',
      success: (result) => {
        if (result.confirm) {
          this.setData({
            historyList: []
          })
          // 删除缓存
          wx.removeStorageSync('historyList');
        }
      }
    });

  },

  // 清除文本框的数据
  clear() {
    this.setData({
      searchContent: '',
      searchList: []
    })
  },

  // 点击取消
  goVideo() {
    wx.reLaunch({
      url: '/pages/video/video',
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})